Skip Headers

Oracle® C++ Call Interface Programmer's Guide 10g Release 2 (10.2) Part Number B14294-02 |
Home | Book List | Contents | Index | Master Index | Feedback

Previous | Next
| View PDF

# IntervalD S Class

The IntervalDS class encapsulates time interval calculations in terms of days, hours, minutes, seconds, and fractional seconds. Leading field precision will be determined by number of decimal digits in day input. Fraction second precision will be determined by number of fraction digits on input.

Table 12-19 Fields of IntervalDS Class

Field | Type | Description
--- | --- | ---
`day` | `int` | Day component. Valid values are `-10^9` through `10^9`.
`hour` | `int` | Hour component. Valid values are `-23` through `23`.
`minute` | `int` | Minute component. Valid values are `-59` through `59`.
`second` | `int` | Second component. Valid values are `-59` through `59`.
`fs` | `int` | Fractional second component. Constructs a `NULL` `IntervalDS` object. A `NULL` `intervalDS` can be initialized by assignment or calling `fromText` method. Methods that can be called on `NULL` `intervalDS` objects are setName() and isNull().

Example 12-6 How to Create, Assign Values, and Use an Empty IntervalDS Object through Direct Assignment

This example demonstrates how the default constructor creates a `NULL` value, and how you can assign a non `NULL` value to a day-second interval and then perform operations on it.

    Environment *env = Environment::createEnvironment();

    // Create a NULL day-second interval
    IntervalDS ds;
    if(ds.isNull())
       cout << "\n ds is null";

    // Assign a non-NULL value to ds
    IntervalDS anotherDS(env, "10 20:14:10.2");
    ds = anotherDS;

    // Now all operations on IntervalDS are valid
    int DAY = ds.getDay();

Example 12-7 How to Create, Assign Values, and Use an Empty IntervalDS Object through fromText() and toText() Methods

This example demonstrates how to create a `NULL` day-second interval, initialize the day-second interval by using the `fromText()` method, add to the day-second interval by using the += operator, multiply by using the * operator, compare 2 day-second intervals, and convert a day-second interval to a string by using the `toText` method:

    Environment *env = Environment::createEnvironment();

    // Create a null day-second interval
    IntervalDS ds1

    // Initialize a null day-second interval by using the fromText method
    ds1.fromText("20 10:20:30.9","",env);

    IntervalDS addWith(env,2,1);
    ds1 += addWith;    //call += operator

    IntervalDS mulDs1=ds1 * Number(env,10);
                       //call * operator
    if(ds1==mulDs1)    //call == operator
       .
       .
    string strds=ds1.toText(2,4);                       //2 is leading field precision
                       //4 is the fractional field precision

Table 12-20 Summary of IntervalDS Methods

Method | Summary
--- | ---
IntervalDS() | `IntervalDS` class constructor.
fromText() | Returns an `IntervalDS` converted from a `string`.
fromUText() | Returns an `IntervalDS` converted from a `UString`.
getDay() | Returns day interval values.
getFracSec() | Returns fractional second interval values.
getFracSec() | Returns hour interval values.
getMinute() | Returns minute interval values.
getSecond() | Returns second interval values.
isNull() | Returns `true` if `IntervalDS` is `NULL`, `false` otherwise.
operator*() | Returns the product of two `IntervalDS` values.
operator*=() | Multiplication assignment.
operator=() | Simple assignment.
operator==() | Checks if `a` and `b` are equal.
operator!=() | Checks if `a` and `b` are not equal.
operator/() | Returns an `IntervalDS` with value `(``a` `/` `b``)`.
operator/=() | Division assignment.
operator>() | Checks if `a` is greater than `b`
operator>=() | Checks if `a` is greater than or equal to `b`.
operator<() | Checks if `a` is less than `b`.
operator<=() | Checks if `a` is less than or equal to `b`.
operator-() | Returns an `IntervalDS` with value (`a -` `b`).
-= | Subtraction assignment.
operator+() | Returns the sum of two `IntervalDS` values.
operator+=() | Addition assignment.
set() | Sets day-second interval.
setNull() | Sets day-second interval to `NULL`.
toText() | Converts to a `string` representation for the interval.
toUText() | Converts to a `UString` representation for the interval.

## IntervalDS()

`IntervalDS` class constructor.

Syntax | Description
--- | ---
    IntervalDS();
| Constructs a `NULL` `IntervalDS` object. A `NULL` `IntervalDS` can be initialized by assignment or calling fromText() method. Methods that can be called on `NULL` `IntervalDS` objects are setName() and isNull().
    IntervalDS(
       const Environment *env,
       int day = 0,
       int hour = 0,
       int minute = 0,
       int second = 0,
       int fs = 0);
| Constructs an `IntervalDS` object within a specified `Environment`.
    IntervalDS(
       const IntervalDS &src);
| Constructs an `IntervalYM` object from src.

Parameter | Description
--- | ---
    env
| The `Environment`.
    day
| The `day` field of `IntervalDS`.
    hour
| The `hour` field of `IntervalDS`.
    minute
| The `minute` field of `IntervalDS`.
    second
| The second field of `IntervalDS`.
    fs
| The `fs` field of `IntervalDS`.
    src
| The source that the `IntervalDS` object will be copied from.

## fromText()

Creates the interval from the string specified. The string is converted using the `nls` parameters associated with the relevant environment. The `nls` parameters are picked up from `env`. If `env` is `NULL`, the `nls` parameters are picked up from the environment associated with the instance, if any.

Syntax

    void fromText(
       const string &inpstr,
       const string &nlsParam = "",
       const Environment *env = NULL);

Parameter | Description
--- | ---
    inpstr
| Input string representing a day second interval of the form 'days hours:minutes:seconds', for example, '10 20:14:10.2'
    nlsParam
| The nls parameters string. If `nlsParam` is specified, this determines the nls parameters to be used for the conversion. If `nlsParam` is not specified, the nls parameters are picked up from `envp`.
    env
| Environment whose nls parameters will be used.

## fromUText()

Creates the interval from the `UString` specified.

Syntax

    void fromUText(
       const UString &inpstr,
       const Environment *env=NULL );

Parameter | Description
--- | ---
    inpstr
| Input `UString` representing a day second interval of the form 'days hours:minutes:seconds', for example, '10 20:14:10.2'
    env
| The `Environment`.

## getDay()

Returns the day component of the interval.

Syntax

    int getDay() const;

## getFracSec()

Returns the fractional second component of the interval.

Syntax

    int getFracSec() const;

## getHour()

Returns the hour component of the interval.

Syntax

    int getHour() const;

## getMinute()

Returns the minute component of this interval.

Syntax

    int getMinute() const;

## getSecond()

Returns the seconds component of this interval.

Syntax

    int getSecond() const;

## isNull()

Tests whether the interval is `NULL`. If the interval is `NULL` then `TRUE` is returned; otherwise, `FALSE` is returned.

Syntax

    bool isNull() const;

## operator*()

Multiplies an interval by a specified value and returns the result.

Syntax

    const IntervalDS operator*(
       const IntervalDS &interval,
       const Number &val);

Parameter | Description
--- | ---
    interval
| Interval to be multiplied.
    val
| Value by which interval is to be multiplied.

## operator*=()

Assigns the product of `IntervalDS` and `a` to `IntervalDS`.

Syntax

    IntervalDS& operator*=(
       const IntervalDS &factor);

Parameter | Description
--- | ---
    factor
| A day second interval.

## operator=()

Assigns the specified value to the interval.

Syntax

    IntervalDS& operator=(
       const IntervalDS &src);

Parameter | Description
--- | ---
    src
| Value to be assigned.

## operator==()

Compares the intervals specified. If the intervals are equal, then `TRUE` is returned; otherwise, `FALSE` is returned. If either interval is `NULL` then SQLException is thrown.

Syntax

    bool operator==(
       const IntervalDS &first,
       const IntervalDS &second);

Parameter | Description
--- | ---
    first
| The first interval to be compared.
    second
| The second interval to be compared.

## operator!=()

Compares the intervals specified. If the intervals are not equal then `TRUE` is returned; otherwise, `FALSE` is returned. If either interval is `NULL` then SQLException is thrown.

Syntax

    bool operator!=(
       const IntervalDS &first,
       const IntervalDS &second);

Parameter | Description
--- | ---
    first
| The first interval to be compared.
    second
| The second interval to be compared.

## operator/()

Returns the result of dividing an interval by a constant value.

Syntax

    const IntervalDS operator/(
       const IntervalDS &dividend,
       const Number &factor);

Parameter | Description
--- | ---
    dividend
| The interval to be divided.
    factor
| Value by which interval is to be divided.

## operator/=()

Assigns the quotient of `IntervalDS` and `val` to `IntervalDS`.

Syntax

    IntervalDS& operator/=(
       const IntervalDS &factor);

Parameter | Description
--- | ---
    factor
| A day second interval.

## operator>()

Compares the intervals specified. If the first interval is greater than the second interval then `TRUE` is returned; otherwise, `FALSE` is returned. If either interval is `NULL` then SQLException is thrown.

Syntax

    bool operator>(
       const IntervalDS &first,
       const IntervalDS &second);

Parameter | Description
--- | ---
    first
| The first interval to be compared.
    second
| The second interval to be compared.

## operator>=()

Compares the intervals specified. If the first interval is greater than or equal to the second interval then `TRUE` is returned; otherwise, `FALSE` is returned. If either interval is `NULL` then SQLException is thrown.

Syntax

    bool operator>=(
       const IntervalDS &first,
       const IntervalDS &first);

Parameter | Description
--- | ---
    first
| The first interval to be compared.
    second
| The second interval to be compared.

## operator<()

Compares the intervals specified. If the first interval is less than the second interval then `TRUE` is returned; otherwise, `FALSE` is returned. If either interval is `NULL` then SQLException is thrown.

Syntax

    bool operator<(
       const IntervalDS &first,
       const IntervalDS &second);

Parameter | Description
--- | ---
    first
| The first interval to be compared.
    second
| The second interval to be compared.

## operator<=()

Compares the intervals specified. If the first interval is less than or equal to the second interval then `TRUE` is returned; otherwise, `FALSE` is returned. If either interval is `NULL` then SQLException is thrown.

Syntax

    bool operator<=(
       const IntervalDS &first,
       const IntervalDS &second);

Parameter | Description
--- | ---
    first
| The first interval to be compared.
    second
| The second interval to be compared.

## operator-()

Returns the difference between the intervals `first` and `second`.

Syntax

    const IntervalDS operator-(
       const IntervalDS &first,
       const IntervalDS &second);

Parameter | Description
--- | ---
    first
| The first interval to be compared.
    second
| The second interval to be compared.

## operator`-=`()

Assigns the difference between `IntervalDS` and `val` to `IntervalDS`.

Syntax

    IntervalDS& operator-=(
       const IntervalDS &val);

Parameter | Description
--- | ---
    val
| A day second interval.

## operator+()

Returns the sum of the intervals specified.

Syntax

    const IntervalDS operator+(
       const IntervalDS &first,
       const IntervalDS &second);

Parameter | Description
--- | ---
    first
| The first interval to be compared.
    second
| The second interval to be compared.

## operator+=()

Assigns the sum of `IntervalDS` and `val` to `IntervalDS`.

Syntax

    IntervalDS& operator+=(
       const IntervalDS &val);

Parameter | Description
--- | ---
    val
| A day second interval.

## set()

Sets the interval to the values specified.

Syntax

    void set(
       int day,
       int hour,
       int minute,
       int second,
       int fracsec);

Parameter | Description
--- | ---
    day
| Day component.
    hour
| Hour component.
    min
| Minute component.
    second
| Second component.
    fracsec
| Fractional second component.

## setNull()

Sets the `IntervalDS` to `NULL`.

Syntax

    void setNull();

## toText()

Converts to a `string` representation for the interval.

Syntax

    string toText(
       unsigned int lfprec,
       unsigned int fsprec,
       const string &nlsParam = "") const;

Parameter | Description
--- | ---
    lfprec
| Leading field precision.
    fsprec
| Fractional second precision.
    nlsParam
| The `nls` parameters string. If `nlsParam` is specified, this determines the `nls` parameters to be used for the conversion. If `nlsParam` is not specified, the nls parameters are picked up from `envp`.

## toUText()

Converts to a `UString` representation for the interval.

Syntax

    UString toUText(
       unsigned int lfprec,
       unsigned int fsprec) cosnt;

Parameter | Description
--- | ---
    lfprec
| Leading field precision.
    fsprec
| Fractional second precision.